/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.losalpes.promocion;

import com.losalpes.catalog.ICatalogService;
import com.losalpes.persistence.entity.Mueble;
import com.losalpes.persistence.entity.Promocion;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;

/**
 * 
 * @author MER
 */
public class PromocionBean {

    @EJB
    private IPromocionServices promocionService;
    @EJB
    private ICatalogService catalogService;
    private Promocion promocion = new Promocion();
    private ArrayList<Promocion> promociones = new ArrayList<Promocion>();
    private Mueble mueble;
    private String referenciaMueble;

    public PromocionBean() {
    }

    /**
     * crea o modifica una promoción
     * @return envío a la página de confirmación o de promoción.
     */
    public String createOrUpdate() {
        if (promocion.getCantidadAOfertar() != 0 && promocion.getCantidadBase() != 0 && !promocion.getNombre().isEmpty() && promocion.getFechaFin() != null && promocion.getFechaInicio() != null) {
            mueble = (Mueble) catalogService.findByRef(referenciaMueble);
            promocion.setMueble(mueble);
            promocionService.createOrUpdate(promocion);
            return "confirmarpromocion";
        }else
            return "promocion";
    }

    /**
     * retorna la instancia del mueble de la promoción
     * @return mueble promocionado
     */
    public Mueble getMueble() {
        return mueble;
    }

    /**
     * Modifica la instancia del mueble de la promoción
     * @param mueble
     */
    public void setMueble(Mueble mueble) {
        this.mueble = mueble;
    }

    /**
     * 
     * @return
     */
    public IPromocionServices getPromocionService() {
        return promocionService;
    }

    /**
     * 
     * @param promocionService
     */
    public void setPromocionService(IPromocionServices promocionService) {
        this.promocionService = promocionService;
    }

    /**
     * Obtiene la promocion
     * @return promocion
     */
    public Promocion getPromocion() {
        return promocion;
    }

    /**
     * Modifica la instancia de la promociòn
     * @param promocion 
     */
    public void setPromocion(Promocion promocion) {
        this.promocion = promocion;
    }

    /**
     * retorna la lista de promociones
     * @return lista de promociones
     */
    public ArrayList<Promocion> getPromociones() {
        return promociones;
    }

    /**
     * Modifica la lista de promociones para mostrar
     * @param ps lista de promociones
     */
    public void setPromociones(ArrayList<Promocion> ps) {
        this.promociones = ps;
    }

    /**
     * Obtiene la referncia del mueble promocionado
     * @return referencia
     */
    public String getReferenciaMueble() {
        return referenciaMueble;
    }

    /**
     * modifica la referencia del mueble promocionado
     * @param referenciaMueble ref del mueble promocionado
     */
    public void setReferenciaMueble(String referenciaMueble) {
        this.referenciaMueble = referenciaMueble;
    }
}

